package com.cmc.cloud.cmclink.doc.vo.sovo.approvespacevo;

import com.cmes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.time.LocalDate;
import java.time.LocalDateTime;

import static com.cmes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static com.cmes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * @author lzp
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Schema(description = "批舱-查询VO")
public class ApproveSpaceReqVO extends PageParam {
    @Schema(description = "船名")
    private String vessel;

    @Schema(description = "航次")
    private String voyage;

    @Schema(description = "批舱状态")
    private String spaceStatus;

    @Schema(description = "订舱号")
    private String bookingNo;

    @Schema(description = "订舱时间开始")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate beginBookingDate;

    @Schema(description = "订舱时间结束")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY)
    private LocalDate endBookingDate;

    @Schema(description = "装货港")
    private String polCode;

    @Schema(description = "订舱时间开始")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime beginBookingTime;

    @Schema(description = "订舱时间结束")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime endBookingTime;
}
